export interface Material {
  id: number;
  name: string;
  category: string;
  location: string;
  status: 'available' | 'maintenance' | 'scrapped' | 'borrowed';
  description?: string;
  borrowerName?: string;
}

export interface CreateMaterialRequest {
  name: string;
  category?: string;
  location?: string;
  status?: 'available' | 'maintenance' | 'scrapped' | 'borrowed';
  description?: string;
  borrowerName?: string;
}

export interface UpdateMaterialRequest {
  name?: string;
  category?: string;
  location?: string;
  status?: 'available' | 'maintenance' | 'scrapped' | 'borrowed';
  description?: string;
  borrowerName?: string;
}

export interface MaterialState {
  materials: Material[];
  loading: boolean;
  error: string | null;
}

export const MATERIAL_STATUS = {
  AVAILABLE: 'available',
  MAINTENANCE: 'maintenance',
  SCRAPPED: 'scrapped',
  BORROWED: 'borrowed',
} as const;